Resource Groups তৈরি এবং পরিচালনা

Database Tutorials - অ্যাপাচি প্রেস্টো (Apache Presto) Presto Resource Groups এবং Workload Management |
201
201

Presto Resource Groups একটি শক্তিশালী বৈশিষ্ট্য যা Presto ক্লাস্টারের কোয়েরি সম্পাদনার জন্য নির্দিষ্ট রিসোর্স বরাদ্দ করার জন্য ব্যবহৃত হয়। Resource Groups ব্যবহার করে আপনি Presto ক্লাস্টারে কোয়েরির জন্য CPU, মেমরি, এবং অন্যান্য রিসোর্সের সীমা নির্ধারণ করতে পারেন, যাতে নির্দিষ্ট কোয়েরি বা ব্যবহারকারী গ্রুপের জন্য রিসোর্স বরাদ্দ নিয়ন্ত্রণ করা যায়।

এটি সাধারণত লম্বা চলমান কোয়েরি, একাধিক ক্লায়েন্টের জন্য একযোগভাবে কোয়েরি সম্পাদনা, বা ওভারলোড মোকাবেলা করার জন্য ব্যবহার করা হয়।


Presto Resource Groups কনফিগারেশন:

Presto-তে Resource Groups তৈরি এবং পরিচালনা করার জন্য আপনাকে config.properties এবং resource-groups.properties ফাইল কনফিগার করতে হবে।

Resource Groups এর বৈশিষ্ট্য:

  • Resource Allocation: কোয়েরি এবং ব্যবহারকারী গ্রুপগুলির জন্য নির্দিষ্ট রিসোর্স বরাদ্দ করা।
  • Resource Management: Presto কোয়েরির জন্য মেমরি, CPU, এবং অন্য রিসোর্স ব্যবস্থাপনা সহজতর করা।
  • Prioritization: নির্দিষ্ট কোয়েরি বা গ্রুপকে বেশি রিসোর্স বরাদ্দ করার মাধ্যমে প্রাধান্য দেওয়া।

ধাপ ১: Presto Resource Groups কনফিগারেশন ফাইল তৈরি করা

Presto Resource Groups কনফিগার করতে, আপনাকে etc/resource-groups.properties ফাইল তৈরি করতে হবে। এই ফাইলের মধ্যে আপনি Resource Groups এবং তাদের সেটিংস কনফিগার করতে পারবেন।

resource-groups.properties ফাইলের উদাহরণ:

# This file configures the resource groups for Presto

# Resource Group Configuration
# Each resource group gets a set of CPU and memory limits

# Default Resource Group
resource-groups.enabled=true
resource-groups.configuration-file=etc/resource-groups.conf

# Maximum memory limit for queries
query.max-memory=30GB
query.max-memory-per-node=2GB

এখানে:

  • resource-groups.enabled=true: এটি Resource Groups সক্ষম করে।
  • resource-groups.configuration-file: Resource Groups কনফিগারেশনের জন্য পাথ নির্ধারণ করে।

ধাপ ২: Resource Group কনফিগারেশন তৈরি করা

Resource Group কনফিগারেশনে আপনি বিভিন্ন গ্রুপ তৈরি করতে পারেন এবং প্রতিটির জন্য নির্দিষ্ট রিসোর্স বরাদ্দ করতে পারেন। এটি resource-groups.conf ফাইলে নির্ধারণ করা হয়।

resource-groups.conf ফাইলের উদাহরণ:

# Define Resource Groups and their configurations

# Default Resource Group configuration
default-group {
    cpu = 2
    memory = 4GB
}

# High Priority Group configuration
high-priority-group {
    cpu = 4
    memory = 8GB
}

# Low Priority Group configuration
low-priority-group {
    cpu = 1
    memory = 2GB
}

এখানে:

  • default-group: ডিফল্ট গ্রুপের জন্য 2 CPU এবং 4GB মেমরি বরাদ্দ করা হয়েছে।
  • high-priority-group: উচ্চ প্রাধান্যের জন্য 4 CPU এবং 8GB মেমরি বরাদ্দ করা হয়েছে।
  • low-priority-group: কম প্রাধান্যের জন্য 1 CPU এবং 2GB মেমরি বরাদ্দ করা হয়েছে।

গ্রুপের প্রাধান্য নির্ধারণ করা:

Presto ক্লাস্টারে কোয়েরি কনফিগারেশনের সময়, আপনি high-priority-group, low-priority-group, বা default-group এর মধ্যে কোয়েরি ভাগ করে রিসোর্স বরাদ্দ করতে পারেন।


ধাপ ৩: Resource Group কনফিগারেশন সক্রিয় করা

Presto এর config.properties ফাইলে Resource Group সক্রিয় করার জন্য, আপনি নীচের সেটিংটি যোগ করতে পারেন।

# Enable resource groups
resource-groups.enabled=true
resource-groups.configuration-file=etc/resource-groups.conf

এটি নিশ্চিত করবে যে, Presto Resource Groups কনফিগারেশন সক্রিয় হয়েছে এবং এটি Presto ক্লাস্টারে ব্যবহৃত হচ্ছে।


ধাপ ৪: Resource Group ব্যবহার করা

Presto ক্লাস্টারে Resource Groups ব্যবহার করতে, কোয়েরি প্রেরণ করার সময় resource group স্পেসিফাই করতে হবে। এটি সাধারণত কোয়েরি এক্সিকিউশনে প্রাধান্য নির্ধারণের জন্য ব্যবহৃত হয়।

-- Assign a query to a specific resource group
SET SESSION resource_group = 'high-priority-group';

SELECT * FROM hive.default.orders WHERE order_status = 'shipped';

এখানে, কোয়েরিটি high-priority-group এ বরাদ্দ করা হয়েছে, যা এই গ্রুপের জন্য নির্ধারিত CPU এবং মেমরি রিসোর্সের পরিমাণ ব্যবহার করবে।


ধাপ ৫: Resource Groups মনিটরিং

Presto তে Resource Groups মনিটর করতে Prometheus এবং Grafana ব্যবহার করা যেতে পারে। Presto বিভিন্ন মেট্রিক্স সংরক্ষণ করে এবং এটি Grafana ড্যাশবোর্ডের মাধ্যমে প্রদর্শিত হয়।

Prometheus মেট্রিক্স উদাহরণ:

  • presto_query_cpu_time_seconds: কোয়েরি CPU সময়ের মেট্রিক।
  • presto_query_memory_bytes: কোয়েরি মেমরি ব্যবহারের মেট্রিক।
  • presto_query_resource_group: Resource Group এর ব্যবহারের মেট্রিক।

এটি আপনাকে দেখাবে, আপনার Resource Group এর জন্য কতটা CPU এবং মেমরি ব্যবহৃত হচ্ছে, এবং এটি আরও বিশ্লেষণ করতে সাহায্য করবে।


ধাপ ৬: Resource Group Management and Scaling

Presto ক্লাস্টারে যখন ভারী লোড তৈরি হয়, তখন Resource Groups ব্যবহার করে আপনাকে নানান ধরনের গ্রুপে কোয়েরি ভাগ করে রিসোর্স ব্যবস্থাপনা করতে হবে। আপনি প্রয়োজন অনুযায়ী Resource Groups স্কেল করতে পারেন:

  • নতুন Worker Node যোগ: যখন আরও রিসোর্স প্রয়োজন হয়, নতুন Worker Node যোগ করা যেতে পারে।
  • Query Throttling: কিছু কোয়েরি থ্রটল করতে Resource Groups-এর মাধ্যমে রিসোর্স সীমাবদ্ধ করা যায়, যাতে নির্দিষ্ট কোয়েরি বেশি রিসোর্স ব্যবহার না করে।

সারাংশ

  • Presto Resource Groups ক্লাস্টারের রিসোর্স বরাদ্দ ও ব্যবস্থাপনা সহজ করে।
  • resource-groups.properties এবং resource-groups.conf ফাইলের মাধ্যমে Resource Groups কনফিগার করা হয়।
  • Presto CLI এর মাধ্যমে নির্দিষ্ট Resource Group এর মধ্যে কোয়েরি এক্সিকিউট করা হয়।
  • Prometheus এবং Grafana এর মাধ্যমে Resource Groups-এর পারফরম্যান্স মনিটর করা যায়।

Resource Groups ব্যবহারের মাধ্যমে আপনি Presto ক্লাস্টারে রিসোর্স বরাদ্দের নিয়ন্ত্রণ প্রতিষ্ঠা করতে পারেন, যা ক্লাস্টারের স্থায়িত্ব এবং পারফরম্যান্স উন্নত করতে সাহায্য করবে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion